/*
 * Copyright (C) 2011 JiangHongTiao <jjurco.sk_gmail.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package sk.lieskove.jianghongtiao.websearch.document.preprocessing.actions;

import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import sk.lieskove.jianghongtiao.websearch.service.ExcludeReasonEnum;
import sk.lieskove.jianghongtiao.websearch.persistence.WebSearchResponse;

import java.io.IOException;
import java.util.regex.Pattern;

/**
 * Date of create: Oct 12, 2011
 *
 * @author JiangHongTiao <jjurco.sk_gmail.com>
 * @version 2011.1012
 */
public class AresExcludeNotFound implements PreprocessAction {
    
    private Logger log = Logger.getLogger(AresExcludeNotFound.class);
    private transient static final Pattern p = Pattern.compile(
            ".*<D:E>(.*\r?\n?.*)*<D:EK>(.*\r?\n?.*)*</D:EK>(.*\r?\n?.*)*"
            + "<D:ET>(.*\r?\n?.*)*</D:ET>(.*\r?\n?.*)*</D:E>.*", Pattern.MULTILINE);

    @Override
    public WebSearchResponse preprocess(WebSearchResponse response) {
        if(response.getFile() == null){
            return response;
        }
        try {
            String inputString = FileUtils.readFileToString(response.getFile(), "UTF-8");
            if((inputString.contains("<D:E>")) ||
                    (inputString.contains("<dtt:Error>"))){
                response.setExcludeReasonEnum(ExcludeReasonEnum.ARES_NOT_FOUND);
                System.out.println("ARES NOT FOUND: "+response.getUuid());
            }
//            if(p.matcher(inputString).matches()){
//                response.setExcludeReasonEnum(ExcludeReasonEnum.ARES_NOT_FOUND);
//            }
        } catch (IOException ex) {
            log.error("Encoding not supported!");
        }
        return response;
    }
    
    
    
}
